/**
 * 
 */
package br.com.skynix.tcmc.model.conta;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import org.hibernate.annotations.ForeignKey;

import br.com.skynix.tcmc.base.model.EntidadeAuditavel;
import br.com.skynix.tcmc.model.rh.Funcionario;

/**
 * @author davi
 * 
 */
@Entity
@Table(name = "tb_carteira")
public class Carteira extends EntidadeAuditavel {
	@NotNull
	@ManyToOne
	@JoinColumn(name = "id_funcionario_fk", nullable = false,
			referencedColumnName = "id")
	@ForeignKey(name = "FK001_carteira")
	private Funcionario funcionario;

	@NotNull
	@ManyToOne
	@JoinColumn(name = "id_conta_fk", nullable = false,
			referencedColumnName = "id")
	@ForeignKey(name = "FK002_carteira")
	private Conta conta;

	@Size(max = 255)
	@Column(nullable = true, length = 255)
	private String motivo;

	/**
	 * @return the funcionario
	 */
	public Funcionario getFuncionario() {
		return funcionario;
	}

	/**
	 * @param funcionario the funcionario to set
	 */
	public void setFuncionario(Funcionario funcionario) {
		this.funcionario = funcionario;
	}

	/**
	 * @return the conta
	 */
	public Conta getConta() {
		return conta;
	}

	/**
	 * @param conta the conta to set
	 */
	public void setConta(Conta conta) {
		this.conta = conta;
	}

	/**
	 * @return the motivo
	 */
	public String getMotivo() {
		return motivo;
	}

	/**
	 * @param motivo the motivo to set
	 */
	public void setMotivo(String motivo) {
		this.motivo = motivo;
	}
}
